// DeepSeek模型测试脚本
const axios = require('axios');

const BASE_URL = 'http://localhost:8080';

// 测试DeepSeek基础调用
async function testDeepSeekBasic() {
    console.log('🧪 测试DeepSeek基础调用...');
    
    try {
        const response = await axios.post(`${BASE_URL}/api/test/deepseek`, {
            prompt: '你好，请介绍一下你自己'
        });
        
        console.log('✅ DeepSeek基础调用成功');
        console.log('📝 响应内容:', response.data.data);
        return true;
    } catch (error) {
        console.error('❌ DeepSeek基础调用失败:', error.response?.data || error.message);
        return false;
    }
}

// 测试角色扮演功能
async function testRoleplay() {
    console.log('\n🎭 测试角色扮演功能...');
    
    try {
        const response = await axios.post(`${BASE_URL}/api/test/roleplay`, {
            character: '柯南',
            prompt: '你好，请用柯南的语气和我对话'
        });
        
        console.log('✅ 角色扮演测试成功');
        console.log('📝 柯南回复:', response.data.data);
        return true;
    } catch (error) {
        console.error('❌ 角色扮演测试失败:', error.response?.data || error.message);
        return false;
    }
}

// 测试莎士比亚角色扮演
async function testShakespeareRoleplay() {
    console.log('\n🎭 测试莎士比亚角色扮演...');
    
    try {
        const response = await axios.post(`${BASE_URL}/api/test/roleplay`, {
            character: '莎士比亚',
            prompt: '请用莎士比亚的风格写一首关于友谊的十四行诗'
        });
        
        console.log('✅ 莎士比亚角色扮演测试成功');
        console.log('📝 莎士比亚回复:', response.data.data);
        return true;
    } catch (error) {
        console.error('❌ 莎士比亚角色扮演测试失败:', error.response?.data || error.message);
        return false;
    }
}

// 测试哈利波特角色扮演
async function testHarryPotterRoleplay() {
    console.log('\n🧙‍♂️ 测试哈利波特角色扮演...');
    
    try {
        const response = await axios.post(`${BASE_URL}/api/test/roleplay`, {
            character: '哈利波特',
            prompt: '你好哈利，能告诉我你在霍格沃茨的第一天是怎么度过的吗？'
        });
        
        console.log('✅ 哈利波特角色扮演测试成功');
        console.log('📝 哈利波特回复:', response.data.data);
        return true;
    } catch (error) {
        console.error('❌ 哈利波特角色扮演测试失败:', error.response?.data || error.message);
        return false;
    }
}

// 测试苏格拉底角色扮演
async function testSocratesRoleplay() {
    console.log('\n🏛️ 测试苏格拉底角色扮演...');
    
    try {
        const response = await axios.post(`${BASE_URL}/api/test/roleplay`, {
            character: '苏格拉底',
            prompt: '苏格拉底，什么是智慧？'
        });
        
        console.log('✅ 苏格拉底角色扮演测试成功');
        console.log('📝 苏格拉底回复:', response.data.data);
        return true;
    } catch (error) {
        console.error('❌ 苏格拉底角色扮演测试失败:', error.response?.data || error.message);
        return false;
    }
}

// 测试实时信息查询（角色扮演中）
async function testRealTimeInfoInRoleplay() {
    console.log('\n🌤️ 测试角色扮演中的实时信息查询...');
    
    try {
        const response = await axios.post(`${BASE_URL}/api/test/roleplay`, {
            character: '柯南',
            prompt: '柯南，今天北京的天气怎么样？'
        });
        
        console.log('✅ 角色扮演中实时信息查询测试成功');
        console.log('📝 柯南回复:', response.data.data);
        return true;
    } catch (error) {
        console.error('❌ 角色扮演中实时信息查询测试失败:', error.response?.data || error.message);
        return false;
    }
}

// 主测试函数
async function runTests() {
    console.log('🚀 开始测试DeepSeek模型集成...\n');
    
    const results = [];
    
    // 基础调用测试
    results.push(await testDeepSeekBasic());
    
    // 角色扮演测试
    results.push(await testRoleplay());
    
    // 莎士比亚测试
    results.push(await testShakespeareRoleplay());
    
    // 哈利波特测试
    results.push(await testHarryPotterRoleplay());
    
    // 苏格拉底测试
    results.push(await testSocratesRoleplay());
    
    // 实时信息查询测试
    results.push(await testRealTimeInfoInRoleplay());
    
    // 总结
    const successCount = results.filter(r => r).length;
    const totalCount = results.length;
    
    console.log(`\n📊 测试结果: ${successCount}/${totalCount} 通过`);
    
    if (successCount === totalCount) {
        console.log('🎉 所有测试通过！DeepSeek模型集成成功！');
        console.log('✅ 角色扮演功能正常');
        console.log('✅ 多种角色支持正常');
        console.log('✅ 实时信息查询功能正常');
        console.log('✅ 语音聊天功能已就绪');
    } else {
        console.log('⚠️  部分测试失败，请检查配置和网络连接');
        console.log('💡 建议检查：');
        console.log('   1. API Key是否正确');
        console.log('   2. 网络连接是否正常');
        console.log('   3. 后端服务是否启动');
    }
}

// 运行测试
runTests().catch(console.error);
